package com.arpa.wms.domain.dto;

import com.arpa.wms.domain.entity.BasicEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.math.BigDecimal;
import java.util.List;

/**
 * @author: Allen chen
 * @Date 2020/8/12
 * @Description:
 */

@Data
@ApiModel(value="GoodsDTO对象", description="商品")
public class GoodsDTO extends BasicEntity {

    @ApiModelProperty(value = "数据标识")
    private String code;

    @ApiModelProperty(value = "所属货主")
    private String shipmentCode;

    @ApiModelProperty(value = "仓库")
    private String warehouseCode;

    @ApiModelProperty(value = "客户")
    private String customerCode;

    @ApiModelProperty(value = "商品类型")
    private String typeCode;

    @ApiModelProperty(value = "商品分类名称")
    private String typeName;

    @ApiModelProperty(hidden = true,value = "商品类型code字符串")
    private String typeCodes;

    @ApiModelProperty(value = "商品名称")
    private String name;

    @ApiModelProperty(value = "混放策略")
    private String storageStrategy;

    @ApiModelProperty(value = "商品分类")
    private String type;

    @ApiModelProperty(value = "品牌code")
    private String brandCode;

    @ApiModelProperty(value = "商品编码")
    private String goodCode;

    @ApiModelProperty(value = "商品条码")
    private String barCode;

    @ApiModelProperty(value = "基本单位code")
    private String unitCode;

    @ApiModelProperty(value = "基本数量")
    private String quantity;

    @ApiModelProperty(value = "单位精度")
    private String unitPrecision;

    @ApiModelProperty(value = "规格")
    private String spec;

    @ApiModelProperty(value = "批号")
    private String lotNumber;

    @ApiModelProperty(value = "保质期")
    private BigDecimal quality;

    @ApiModelProperty(value = "临期预警")
    private BigDecimal earlyWarning;

    @ApiModelProperty(value = "收货预警")
    private BigDecimal receivingWarning;

    @ApiModelProperty(value = "发货预警")
    private BigDecimal sendWarning;

    @ApiModelProperty(value = "库存类型")
    private String stockType;

    @ApiModelProperty(value = "可销售")
    private String sale;

    @ApiModelProperty(value = "可采购")
    private Integer purchase;

    @ApiModelProperty(value = "重量")
    private BigDecimal weight;

    @ApiModelProperty(value = "体积")
    private BigDecimal volume;

    @ApiModelProperty(value = "补货倍数")
    private BigDecimal multiple;

    @ApiModelProperty(value = "助记符")
    private String mnemonic;

    @ApiModelProperty(value = "辅助单位")
    private String auxiliaryUnitCode;


    @ApiModelProperty(value = "最低库存量预警")
    private BigDecimal miniStock;

    @ApiModelProperty(value = "状态")
    private String status;

    @ApiModelProperty(value = "是否可删除标识")
    private String deleteFlag;

    @ApiModelProperty(value = "最高库存量预警")
    private BigDecimal maxStock;

    @ApiModelProperty(value = "换算数量")
    private BigDecimal convertedQuantity;

    @ApiModelProperty(value = "是否启用批次号")
    private Integer isLotNumber;

    @ApiModelProperty(value = "所属机构")
    private String partyGroupCode;


    @ApiModelProperty(value = "商品类型：0普通商品，1组合商品")
    private Integer recordType;

    @ApiModelProperty(hidden = true,value = "商品类型code,List集合")
    private List<String> list;

    @ApiModelProperty(value = "进货价格")
    private BigDecimal receiptPrice;

    @ApiModelProperty(value = "销售价格")
    private BigDecimal deliveryPrice;

    @ApiModelProperty(value = "重量下限")
    private BigDecimal weightStart;

    @ApiModelProperty(value = "重量上限")
    private BigDecimal weightEnd;

    @ApiModelProperty(value = "体积下限")
    private BigDecimal volumeStart;

    @ApiModelProperty(value = "体积上限")
    private BigDecimal volumeEnd;

    @ApiModelProperty(value = "补货倍数下限")
    private BigDecimal multipleStart;

    @ApiModelProperty(value = "补货倍数上限")
    private BigDecimal multipleEnd;

    @ApiModelProperty(value = "销售价格上限")
    private BigDecimal deliveryPriceEnd;

    @ApiModelProperty(value = "销售价格下限")
    private BigDecimal deliveryPriceStart;

    @ApiModelProperty(value = "第几页")
    private Integer pageNum=1;

    @ApiModelProperty(value = "每页条数")
    private Integer pageSize=10;

    @ApiModelProperty(value = "排序字段")
    private String sortField;

    @ApiModelProperty(value = "排序方式")
    private String sortType;

}
